﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using HotelManagement._04.OBJECT;
using HotelManagement._02.BUS;

namespace HotelManagement._01.FORM
{
    public partial class F01_Login : Form
    {
        public F01_Login()
        {
            InitializeComponent();
            Init();
        }
        private void Init()
        {
            m_User = new User();
            m_UserBUS = new UserBUS();
        }
        User m_User;
        UserBUS m_UserBUS;

        private bool ValidateForm()
        {
            if (CValidate.IsNullString(m_txt_UserName.Text)) { MessageBox.Show("Bạn chưa nhập tài khoản !"); return false; }
            if (CValidate.IsNullString(m_txt_Password.Text)) { MessageBox.Show("Bạn chưa nhập mật khẩu !"); return false; }
            return true;
        }
        private void btnCancel_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnLogIn_Click(object sender, EventArgs e)
        {
            if (!ValidateForm()) return;
            int v_Id=m_UserBUS.ViewUserByAccount(m_txt_UserName.Text, m_txt_Password.Text);
            if (v_Id==0) MessageBox.Show("Lỗi tài khoản hoặc mật khẩu không đúng !");
            else
            {
                AssetsGS.instance.UserId = v_Id;  // Xác định user đang dùng là user nào
                AssetsGS.instance.RoleUser = m_UserBUS.ViewRoleOfUser(v_Id);  // Xác định quyền hạn user đang dùng
                if (AssetsGS.instance.RoleUser == "Blacklist") { MessageBox.Show("Tài khoản này đã bị hạn chế truy cập !"); return; }
                this.Hide();
                //Lưu thời gian đăng nhập
                AssetsGS.instance.LoginTime = DateTime.Now;
                //Hiện thông báo đầu chương trình
                F03_Message v_F03_Message = new F03_Message();
                v_F03_Message.ShowDialog();
                F00_Main v_F00_Main = new F00_Main();
                v_F00_Main.Show();
              //  v_F00_Main.Close();
            }
        }

        private void F01_Login_FormClosed(object sender, FormClosedEventArgs e)
        {
            Application.Exit();
        }
    }
}
